﻿///////////////////////////////////////////////////////////////////////////////
// 文件名： Mesh.cc
// 作者：   671643387@qq.com
// 日期：   2015年11月1日 下午6:45:17
// 简介：   
///////////////////////////////////////////////////////////////////////////////

#include <malloc.h>

#include "graphics/graphics/component/Mesh.hpp"
using namespace ::graphics::graphics::component;

int Mesh::FVF_XYZ = 0x1;
int Mesh::FVF_COLOR = 0x2;
int Mesh::FVF_INDEX = 0x4;

Mesh::Mesh()
    : Component("Mesh")
    , vertices_(NULL)
    , indices_(NULL)
{

}

Mesh::~Mesh()
{
    if (vertices_ != NULL)
    {
        ::free(vertices_);
        vertices_ = NULL;
    }

    if (indices_ != NULL)
    {
        ::free(indices_);
        indices_ = NULL;
    }
}

///////////////////////////////////////////////////////////////////////////////

void* Mesh::MallocVertices(::graphics::size_t size)
{
    return malloc(size);
}

void* Mesh::MallocIndices(::graphics::size_t size)
{
    return malloc(size);
}

void Mesh::Free(void* memory)
{
    return ::free(memory);
}

void Mesh::SetVertices(void* vp)
{
    vertices_ = vp;
}

void Mesh::SetIndices(void* vp)
{
    indices_ = vp;
}

void* Mesh::GetVertices() const
{
    return vertices_;
}

void* Mesh::GetIndices() const
{
    return indices_;
}

void Mesh::SetVerticesSize(::graphics::size_t size)
{
    verticesSize_ = size;
}

void Mesh::SetIndicesSize(::graphics::size_t size)
{
    indicesSize_ = size;
}

::graphics::size_t Mesh::GetVerticesSize() const
{
    return verticesSize_;
}

::graphics::size_t Mesh::GetIndicesSize() const
{
    return indicesSize_;
}


void Mesh::SetFVF(int fvf)
{
    fvf_ = fvf;
}

int Mesh::GetFVF() const
{
    return fvf_;
}